iT邦幫忙

2023 iThome 鐵人賽

DAY 24
1
SideProject30

python基礎及數據科學之應用系列 第 24

python基礎及數據科學之應用day 24[pycord資料庫介紹]

  • 分享至 

  • xImage
  •  

day 24:
希望瀏覽數可以多點啦,更多人看我的教學後有所增長

Discord機器人是一種在Discord聊天平台上運行的程式。

/images/emoticon/emoticon08.gif

它們被設計用於與使用者進行互動、提供資訊、執行指令或執行特定的自動化任務。Discord機器人可以使用Discord開發者API創建和部署。開發者可以使用編程語言(如Python)編寫機器人的程式碼,並通過API KEY與Discord伺服器進行通訊。機器人可以執行許多功能,例如:

伺服器管理:機器人可以幫助

  • 管理Discord伺服器
  • 建立和管理頻道
  • 管理使用者權限
  • 清理聊天記錄等。
  • 機器人可以回答使用者的問題,提供即時資訊,如天氣預報、新聞等。
  • 機器人可以提供各種娛樂功能,如抽獎、問答、音樂播放器等。
  • 機器人可以與使用者互動,回覆訊息、發送私人訊息、監控使用者活動等。自訂功能:機器人可以連接其他應用程式或服務,執行特定任務,根據開發者的需求進行自訂。

Discord機器人的功能幾乎無窮,開發者可以根據需求和創造力創建各種有趣且有用的機器人。

為什麼選擇pycord

  1. 易於使用和學習
    *Pycord 提供了易於理解且易於理解的 API
  2. 強大的功能集
    • 支援伺服器管理、訊息處理、用戶互動、音樂播放
  3. 社區支持和活躍度
    • 開發者可以根據自己的喜好和行為修改需求,自由客製化和機器人的行為
  4. 高度可允許自訂性
    • 開發者可以在社區中獲得支持、交流和分享

總而言之,選擇Pycord

下載pycord

pip install py-cord

小試牛刀

再創建一個新的機械人時,你需要先在你的discord帳戶設定到進階中開啟開發者模式

接着便到discord api登入
在New Application中創建一個新的項目,把項目改為你自己喜歡的名字,接着按同意條款。

再在Genral Information中輸入你bot的資料,不多作介紹。
https://ithelp.ithome.com.tw/upload/images/20231009/20163173m1SzEvKGse.png

接下來便比較重要,在General Information 的下方尋找OAuth2,按下去。

在OAuth2的下方尋找URL Generator,按下去,在SCOPES中選擇botapplication.commands,這裏為了教學,請選擇Administrator(管理員身份),接着便去下方複製那個連結。並在瀏覽器中開啟連結,並進行授權。

https://ithelp.ithome.com.tw/upload/images/20231009/20163173OMTh7MQYLX.png

再回到左方settings中選擇bot,先按Reset Token,接着複製字串。
https://ithelp.ithome.com.tw/upload/images/20231009/20163173MfuDms8Zzs.png

注意,請不要分享你的Token給其他人,因為那個東西就像你家的鎖匙,其他人取得便能控制你的機械人。如果真的不幸被其他人取得了,那麼便重設。

/images/emoticon/emoticon30.gif

接着就可以開始寫程式,新增一個py檔案放入程式碼

簡單範例:

在第十八行的bot.run放入你之前取得的Token。

import discord

bot = discord.Bot()

@bot.event
async def on_ready():
    print(f'Logged in as {bot.user.name} ({bot.user.id})')
    print('Bot is ready to receive commands')

@bot.command(description="Sends the bot's latency.") 
async def ping(ctx): # 將會建立一個名為「ping」的斜線指令
    await ctx.respond(f"Pong! Latency is {bot.latency}")

@bot.command(description="say hi")
async def hello(ctx): #將會建立一個名為「ping」的斜線指令
  await ctx.respond(f"Hello, {ctx.author}!")

bot.run("Your token") 

執行結果:

Logged in as eeee (1160823090046054432)
Bot is ready to receive commands

在有機械人的server輸入指令(/ping/hello)後:
https://ithelp.ithome.com.tw/upload/images/20231009/201631730pBiXqEUDd.png

接着便解釋這段程式嗎

bot=discord.Bot()

就是建立一個物件,如果不清楚的可以再查看python 類別(class)的簡介

@bot.event

在pycord中可以建立多個事件,類似監聽器,這裏所建立的是機械人成功上線後便在終端機輸出自己的名字。

@bot.command()

就是建立一個斜線指令,讓使用者可以自行輸入,並取得資料。

async def ping(ctx)

async(非同步)是用於網絡請求,這裏不詳細講解,大概就是更快的運行。
ctx是一個約定,和類別中的self一樣,他儲存了很多關於訊息的資料和函數。
例如ctx.respond就是其中一個方法來傳送訊息。
ctx.author會顯示誰傳送訊息

bot.latency

bot.latency提供機器人與 Discord 伺服器連線的延遲。

await

就是等上方async的程式碼執行完成時便會開始執行。

bot.run()

連線你的機械人。是一個循環。

/images/emoticon/emoticon10.gif
ctxbot中有更多的變數及函數,明天將會介紹部份的,其他的可以自行到它的文檔參考。
今天的有趣內容到這裏,如果覺得我的文章對你有幫助或有更好的建議,可以追蹤我和不妨在留言區提出,我們明天再見。

refernece:
https://guide.pycord.dev/


上一篇
python基礎及數據科學之應用day 23[tkinter資料庫介紹4]
下一篇
python基礎及數據科學之應用day 25[pycord資料庫介紹2]
系列文
python基礎及數據科學之應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言